1. Field of the Invention
This invention relates to computer systems and, more particularly, to the management of synchronization operations within storage environments employing storage virtualization.
2. Description of the Related Art
Many business organizations and governmental entities rely upon applications that access large amounts of data, often exceeding a terabyte or more of data, for mission-critical applications. Often such data is stored on many different storage devices, which may be heterogeneous in nature, including many different types of devices from many different manufacturers.
Configuring individual applications that consume data, or application server systems that host such applications, to recognize and directly interact with each different storage device that may possibly be encountered in a heterogeneous storage environment would be increasingly difficult as the environment scaled in size and complexity. Therefore, in some storage environments, specialized storage management software and hardware may be used to provide a more uniform storage model to storage consumers. Such software and hardware may also be configured to add storage features not present in individual storage devices to the storage model. For example, features to increase fault tolerance, such as data mirroring, snapshot/fixed image creation, replication, or data parity, as well as features to increase data access performance, such as disk striping, may be implemented in the storage model via hardware or software.
Some of the added storage features, such as the ability to attach additional mirrors to a storage device, or to replicate data at a remote location, may require a synchronization or data copying operation from a set of source storage devices to a set of target storage devices. For example, a newly attached mirror may have to be synchronized with the existing mirror or mirrors of a logical volume being used by a file system. In some cases, a large amount of storage may have been reserved for use at a storage device such as a logical volume, not all of which may be actually in use at the time that a synchronization operation is performed. For example, a mirror of a logical volume may comprise several hundred gigabytes of disk storage, of which only a few tens of gigabytes may be mapped (e.g., into files, directories and file system metadata) by the file system using the logical volume at the time a new mirror is attached. Mapping information identifying the in-use portions of the source storage devices may be available at an application layer (e.g., at a file system), but may not be directly visible at a lower-level storage management layer responsible for performing the synchronization operation (e.g., at a volume manager). The synchronization operation may therefore typically include the copying of large amounts of storage that may not be in use. It may be desirable to make the synchronization operations more efficient by restricting the data blocks copied to those that are in use.